package com.bs.product.utils;
import lombok.Data;

@Data
public class AjaxResult {
    // 状态码：
    // 如果成功了 200
    // 失败 500
    // 根据业务定义 值： 比如：
    // 登录时：用户名或密码错误， 501
    // 用户被冻结 502   账号权限不对 503
    private int code;
    // 返回的消息
    private String msg;
    // 返回的数据
    private Object data;
    //提供构造方法

    public AjaxResult(int code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    // 提供对应的方法，直接调用，不创建对象，直接返回AJaxResult
    public static  AjaxResult success(int code, String msg, Object data){
        return  new AjaxResult(code, msg, data);
    }

    public static  AjaxResult success( String msg){
        return  new AjaxResult(200, msg, null);
    }
    public static  AjaxResult success( String msg, Object data){
        return  success(200,  msg,  data);
    }
    public static  AjaxResult success(  Object data){
        return  success(200,  "操作成功",  data);
    }
    public static  AjaxResult success( ){
        return  success(200,  "操作成功",  null);
    }
    // 失败的
    public static  AjaxResult fail(int code, String msg, Object data){
        return  new AjaxResult(code, msg, data);
    }

    public static  AjaxResult fail( String msg, Object data){
        return  fail(500,  msg,  data);
    }
    public static  AjaxResult fail( int code, String msg){
        return  fail(code,  msg, null);
    }

    public static  AjaxResult fail(  Object data){
        return  fail(500,  "操作失败",  data);
    }
    public static  AjaxResult fail( ){
        return  fail(500,  "操作失败",  null);
    }
}
